package com.jiangyao.model.dto.backend;

import com.jiangyao.model.dto.BaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 个人档案DTO
 *
 * @author: yangyongchuan
 * @create: 2020年09月05日 16:12
 */
@ApiModel("个人档案DTO")
@Data
public class UserExperienceDTO implements BaseDTO {

	private static final long serialVersionUID = -9085153349116705620L;

	public interface Audit {
	}

	/**
	 * 个人档案ID
	 */
	@ApiModelProperty(value = "个人档案ID")
	@NotNull(message = "个人档案ID不能为空", groups = {Edit.class})
	private Integer id;

	/**
	 * 个人档案ID集合
	 */
	@ApiModelProperty(value = "个人档案ID集合（修改审核状态使用）")
	@NotNull(message = "个人档案ID集合不能为空", groups = {Audit.class})
	private List<Integer> idList;

	/**
	 * 成员ID
	 */
	@ApiModelProperty("成员ID")
	@NotNull(message = "成员ID不能为空", groups = {Add.class})
	private Integer userId;

	/**
	 * 类型  1 教育经历 2工作经历  3技能证书 4奖惩情况
	 */
	@ApiModelProperty(value = "类型 1 教育经历 2工作经历  3技能证书 4奖惩情况", example = "1")
	@NotNull(message = "成员ID不能为空", groups = {Add.class, Edit.class})
	private Integer type;

	/**
	 * 关联开始时间
	 */
	@ApiModelProperty(value = "关联开始时间",example = "2020-01-01 00:00:00")
	private Date startTime;

	/**
	 * 关联结束时间
	 */
	@ApiModelProperty(value ="关联结束时间",example = "2099-01-01 00:00:00")
	private Date endTime;

	/**
	 * 关联内容
	 */
	@ApiModelProperty("关联内容")
	@NotNull(message = "关联内容不能为空", groups = {Add.class, Edit.class})
	@NotEmpty(message = "关联内容不能为空", groups = {Add.class, Edit.class})
	private String content;

	/**
	 * 凭证
	 */
	@ApiModelProperty("凭证")
	@NotNull(message = "凭证不能为空", groups = {Add.class, Edit.class})
	@NotEmpty(message = "凭证不能为空", groups = {Add.class, Edit.class})
	private String credentials;

	/**
	 * 详细概述
	 */
	@ApiModelProperty("详细概述")
	private String experience;

	/**
	 * 状态 1 待审核 2通过  3拒绝
	 */
	@ApiModelProperty(value = "状态 1 待审核 2通过  3拒绝", example = "2")
	@NotNull(message = "状态不能为空", groups = {Audit.class})
	private Integer status;

}
